package com.ywd.platform.vo;

import io.swagger.v3.oas.annotations.media.Schema;
import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.NoArgsConstructor;

import java.io.Serializable;

/**
 * YWD
 * 2025/8/17
 */
@AllArgsConstructor
@NoArgsConstructor
@Data
public class DeviceVo implements Serializable {
    /**
     * 设备ID
     */
    @Schema(description = "设备ID")
    private Long id;
    /**
     * 设备唯一标识(UUID)
     */
    @Schema(description = "设备唯一标识(UUID)")
    private String deviceUuid;
    /**
     * 车辆ID
     */
    @Schema(description = "车辆ID")
    private Long vehicleId;
    /**
     * 车牌号
     */
    @Schema(description = "车牌号")
    private String licensePlate;
    /**
     * 设备鉴权码
     */
    @Schema(description = "设备鉴权码")
    private String authCode;

    /**
     * 设备类型: (1=GPS定位, 2=摄像头, 3=传感器, 4=行车记录仪, 5=OBD诊断)
     */
    @Schema(description = "设备类型: (1=GPS定位, 2=摄像头, 3=传感器, 4=行车记录仪, 5=OBD诊断)")
    private Integer deviceType;
    /**
     * 设备制造商
     */
    @Schema(description = "设备制造商")
    private String manufacturer;
    /**
     * 设备型号
     */
    @Schema(description = "设备型号")
    private String model;
    /**
     * IMEI号(仅移动设备)
     */
    @Schema(description = "IMEI号(仅移动设备)")
    private String imei;
    /**
     * SIM卡号
     */
    @Schema(description = "SIM卡号")
    private String simCard;
    /**
     * 固件版本
     */
    @Schema(description = "固件版本")
    private String firmwareVersion;
    /**
     * 激活日期
     */
    @Schema(description = "激活日期")
    private String activationDate;
    /**
     * 是否在线：0=离线，1=在线
     */
    @Schema(description = "是否在线：(0=离线，1=在线)")
    private Boolean onlineStatus;
    /**
     * 最后在线时间
     */
    @Schema(description = "最后在线时间")
    private String lastOnlineTime;
    /**
     * 状态: 0=停用, 1=启用, 2=故障, 3=维护中
     */
    @Schema(description = "设备状态: (0=停用, 1=启用, 2=故障, 3=维护中)")
    private Integer status;
    /**
     * 创建时间
     */
    @Schema(description = "创建时间")
    private String createTime;
    /**
     * 更新时间
     */
    @Schema(description = "更新时间")
    private String updateTime;

}
